1. Technical Field
This invention relates to simulation and training systems, and more particularly to an interactive simulating system capable of monitoring internal conditions.
2. Discussion
Simulation systems which permit a person to experience the operation of a complex operating environment have proven useful for both training and recreational applications. For example, various kinds of simulators have been developed to train operators of ground and airborne vehicles because of the high cost of using actual vehicles during training. In pilot training, hardware mockups of an aircraft cockpit, coupled with a computer generated simulated view, are frequently employed to give new pilots experience with the myriad controls and situations they will encounter when operating actual aircraft.
There are two main kinds of simulation systems, procedural trainers, and freeplay trainers. Procedural trainers are those in which a student is walked through a fixed series of procedural steps that require him/her to push buttons, flip switches, etc., in a predetermined manner. This teaches the student the specific series of steps that must be performed in a particular situation. These procedural steps can be defined and monitored in software called courseware.
Procedural trainers are useful because they permit the student to learn and memorize a fixed procedure that must be performed by rote in given situations. For example, in flight simulators, a procedural simulator may be use to teach the pilot the required steps to perform when the engines of the aircraft are on fire. These steps should be implemented by the pilot virtually automatically and will rarely deviate from the fixed procedure.
One disadvantage with procedural trainers is that while they do teach students predetermined procedures, they do not provide a realistic experience of the operation of the simulated system. That is, they do not give the student a deep understanding of the operation of the system to permit him to cope with situations which he hasn't been taught about previously.
Another problem with procedural trainers is that the courseware for a procedural trainer is very time consuming to author because of the level of detail that must be specified. In this regard, while monitoring states of various switches is relatively straightforward for the courseware in a procedural trainer, when it is desired to monitor a combination of switch actions, and those switch actions themselves are subject to cancellation and correction by the user, the required courseware becomes much more complex and difficult to author.
For example, if it is desired to monitor the result of switch actions rather than the switch actions themselves, monitoring becomes very difficult. Examples of this would include the task of monitoring a cursor position based on switch actions that control the cursor, or monitoring simulated engine RPM based on throttle position. This is because engine RPM may vary depending on other factors besides throttle position and may also be subject to a time lag between movement of the throttle and resulting engine RPM. As a result, in conventional simulation systems, separate software routines must be written by the simulation developer to monitor each thing that is monitored.
Freeplay trainers, on the other hand, permit a student to experiment with the simulated system to gain a deeper understanding of its operation. A student may first be taught a number of procedures using a procedural trainer and then it may desirable to let the student experiment in a freeplay environment where he can try things out to see how the system responds. However, freeplay trainers do not direct the student in the kinds of structured training exercises that are often necessary to insure that a student has mastered certain tasks. Unfortunately, prior simulation systems for complex operating environments, have not permitted both procedural and freeplay operation.
Thus, it would be desirable to have a single simulation system which permits both freeplay and procedural training modes. Further, it would be desirable to provide a simulation system which, in a procedural training mode, can monitor conditions without monitoring individual switch states. That is, it would be desirable to have a procedural trainer which can operate by monitoring internal states of the software that implement a procedure, rather than monitoring an external state of a switch or other input device.